const fs = require('fs')

const list = [
  { id: 1, pid: 0, name: '传智教育' },
  { id: 2, pid: 1, name: '总裁办' },
  { id: 3, pid: 1, name: '行政部' },
  { id: 4, pid: 1, name: '人事部' },
  { id: 5, pid: 1, name: '财务部' },
  { id: 6, pid: 1, name: '技术部' },
  { id: 7, pid: 1, name: '运营部' },
  { id: 8, pid: 1, name: '市场部' },
  { id: 9, pid: 4, name: '财务核算部' },
  { id: 10, pid: 4, name: '税务管理部' },
  { id: 11, pid: 4, name: '薪资管理部' },
  { id: 15, pid: 7, name: '上海事业部' },
  { id: 16, pid: 7, name: '北京事业部' }
]

// 需求： 实现 arr 转 tree 结构
function list2Tree(list, rootValue) {
  const arr = []
  list.forEach(item => {
    if (item.pid === rootValue) {
      arr.push(item)

      const children = list2Tree(list, item.id)
      item.children = children
    }
  })

  return arr
}

const res = list2Tree(list, 0)

// json.stringify() 接收三种参数
// 1. 要序列化的对象
// 2. 过滤函数
// 3. 缩进空格数
fs.writeFileSync('./tree.json', JSON.stringify(res, null, 2))
